const fs = require('fs');
const path = require('path');

// 读取 search.json 文件
const searchFilePath = path.join(__dirname, 'search.json');
fs.readFile(searchFilePath, 'utf8', (err, data) => {
    if (err) {
        console.error('读取文件时出错:', err);
        return;
    }

    try {
        const jsonData = JSON.parse(data);
        
        // 递归函数，提取最后一级 children 下的数据
        function extractLastLevelChildren(item) {
            let result = [];
            if (item.children && item.children.length > 0) {
                item.children.forEach(child => {
                    result = result.concat(extractLastLevelChildren(child));
                });
            } else {
                result.push(item);
            }
            return result;
        }

        // 处理数据
        let finalData = [];
        if (Array.isArray(jsonData)) {
            jsonData.forEach(item => {
                finalData = finalData.concat(extractLastLevelChildren(item));
            });
        } else {
            finalData = extractLastLevelChildren(jsonData);
        }

        // 生成 search2.json 文件
        const search2FilePath = path.join(__dirname, 'search2.json');
        fs.writeFile(search2FilePath, JSON.stringify(finalData, null, 2), 'utf8', (err) => {
            if (err) {
                console.error('写入文件时出错:', err);
                return;
            }
            console.log('search2.json 文件已成功生成');
        });
    } catch (parseError) {
        console.error('解析 JSON 数据时出错:', parseError);
    }
});
